home *** CD-ROM | disk | FTP | other *** search
/ Day Cry / Day Cry CD.bin / oh_towns / ugoku / src.lzh / MOVREC / MRCXSET.C < prev    next >
Text File  |  1994-06-01  |  12KB  |  529 lines

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <winb.h>
  5. #include <te.h>
  6. #include <fntb.h>
  7. #include <gui.h>
  8. #include <file_dlg.h>
  9. #include <tifflib.h>
  10. #include <egb.h>
  11. #include <mos.h>
  12. #include <snd.h>
  13. #include "ugoku.h"
  14. #include "mrcdef.h"
  15.  
  16. extern    int        mouseSwCheck() ;
  17. extern    int        errorCheck( int ) ;
  18.  
  19. extern    char    *guiEgbPtr ;    /*    EGB é╠âÅü[âNâAâhâîâX    */
  20. extern    char    *rbuf ;            /*    Ä⌐ë╞É╗é╠âÅü[âNâAâhâîâX    */
  21. extern    char    *bbuf ;            /*    Ä⌐ë╞É╗é╠âÅü[âNâAâhâîâX    */
  22.  
  23. extern int    baseDialogId ;
  24.  
  25. int    setDialogId = -1 ;
  26. int    setMesId[17] = -1 ;
  27. int    setOKBtnId = -1 ;
  28. int    setCanBtnId = -1 ;
  29. int    setSubDialogId = -1 ;
  30. int    waitNumId = -1 ;
  31. int    setBtnId[9] = -1 ;
  32.  
  33. static    int playMode = 0 ;    /* memory or disk */
  34. static    int movZoom = 1 ;
  35. static    int loop = 1 ;
  36. static    int wait = 0 ;
  37. static    int setFlag ;
  38. static    int movx0 ;
  39. static    int movy0 ;
  40. static    int movx1 ;
  41. static    int movy1 ;
  42.  
  43. /* ì─É╢ */
  44. movPlay( namemov )
  45. char *namemov ;
  46. {
  47.     extern r_waku_clear1( int, int, int ) ;
  48.     extern r_waku_clear2( int, int, int ) ;
  49.     extern r_waku_del() ;
  50.     extern r_panel_make( int, int, int, int ) ;
  51.     extern r_panel_del() ;
  52.  
  53.     int error ;
  54.     int i, ret, zoomkioku ;
  55.     int movframe, movwait ;
  56.  
  57.     ret = mov_head_read_and_dsp( namemov, &movframe, &movx0, &movy0,
  58.     &movx1, &movy1, &movwait, 0, TL_malloc, TL_free );
  59.  
  60.     if( ret == NOERR )
  61.     {
  62.         r_mov_graph_init( movZoom+1, movx0,movy0,movx1,movy1 ) ;
  63.                                     /* ö{ùªé╔éáéφé╣é─ëµû╩É▌ÆΦ */
  64.         MG_mosDisp( 0 ) ;
  65.  
  66.         r_waku_clear1( movx1-movx0+1, movy1-movy0+1, movZoom+1 ) ;
  67.         EGB_displayPage(guiEgbPtr,1,3);
  68.  
  69.         MG_mosDisp( 1 ) ;
  70.     }
  71.     else
  72.         return ret ;
  73.  
  74. v01:
  75.     /* â}âEâXé¬ëƒé│éΩé─éóéΩé╬ăé╠âCâxâôâgé≡û│Äï */
  76.     if( mouseSwCheck() )TL_setInvalidMosFlag() ;
  77.  
  78.     MMI_SendMessage( setDialogId, MM_ATTACH, 1, baseDialogId ) ;
  79.  
  80.     for( i=2 ; i<8 ; i++ )    /* â{â^âôâNâèâAü[(2ü`8) (0,1é═æ╢ì▌é╡é╚éó) */
  81.         MTL_resetFlagObj( setBtnId[i], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  82.     MTL_setFlagObj( setBtnId[playMode+2], (MS_UNSELECT | MS_TOGGLE) ) ;
  83.     MTL_setFlagObj( setBtnId[movZoom+4], (MS_UNSELECT | MS_TOGGLE) ) ;
  84.     if( loop == 1 )    MTL_setFlagObj( setBtnId[8], MS_TOGGLE ) ;
  85.     else            MTL_resetFlagObj( setBtnId[8], (~MS_TOGGLE) ) ;
  86.  
  87.     MMI_SendMessage( setDialogId, MM_SHOW, 0 ) ;        /* î⌐é╣éΘ */
  88.     zoomkioku = movZoom ;
  89.  
  90.     MMI_ExecSystem() ;        /* Dialogò\Īé╓ÑÑÑâCâxâôâgâïü[âv */
  91.  
  92.     MMI_SendMessage( setDialogId, MM_ERASE, 0 ) ;
  93.     MMI_SendMessage( setDialogId, MM_DETACH, 0 ) ;
  94.     loop = (MTL_checkFlagObj( setBtnId[8], MS_TOGGLE )==MS_TOGGLE) ? 1:0 ;
  95.  
  96.     error = 0 ;
  97.     if( setFlag == TRUE )
  98.     {
  99.         MG_mosDisp( 0 ) ;
  100.  
  101.         if( movZoom != zoomkioku )    /* ö{ùªé╠ò╧ìXé¬éáéΘé╞é½ */
  102.         {
  103.             r_waku_del() ;
  104.             r_mov_graph_init( movZoom+1, movx0,movy0,movx1,movy1 ) ;
  105.                                         /* ö{ùªé╔éáéφé╣é─ëµû╩É▌ÆΦ */
  106.         }
  107.         r_panel_make( 0, 0, 639, 19 ) ;
  108.         r_waku_clear2( movx1-movx0+1, movy1-movy0+1, movZoom+1 ) ;
  109.  
  110.         MG_mosDisp( 0 ) ;
  111.  
  112.         if( playMode == 0 )
  113.         {
  114.             error = r_mov_memory_play( namemov, wait, loop, 0 ) ;
  115.         }
  116.         else
  117.         {
  118.             error = r_mov_disk_play( namemov, wait, loop, 0 ) ;
  119.         }
  120.  
  121.         MMI_FlushEvnt() ;
  122.         MG_mosDisp( 1 ) ;
  123.  
  124.         r_waku_clear1( movx1-movx0+1, movy1-movy0+1, movZoom+1 ) ;
  125.         r_panel_del() ;
  126.  
  127.     }
  128.     else
  129.     {
  130.         r_waku_del() ;
  131.         r_panel_del() ;
  132.         EGB_displayPage(guiEgbPtr,1,2);
  133.         return NOERR ;
  134.     }
  135.  
  136.     if( error )
  137.     {
  138.         errorCheck( error ) ;
  139.     }
  140.     else
  141.     {
  142.         goto v01 ;
  143.     }
  144.  
  145.     r_waku_del() ;
  146.     EGB_displayPage(guiEgbPtr,1,2);
  147.  
  148.     return NOERR ;
  149. }
  150.  
  151. /*    initDataIRCSET:setOKBtnId:MJ_DBUTTONL40é╠î─é╤Åoé╡è╓Éö    */
  152. /*    initDataIRCSET:setCanBtnId:MJ_DBUTTONL40é╠î─é╤Åoé╡è╓Éö    */
  153. int    setOKchk(kobj, messId, argc, pev, trigger)
  154. int        kobj ;
  155. int        messId ;
  156. int        argc ;
  157. EVENT    *pev ;
  158. int        trigger ;
  159. {
  160.     if( kobj == setOKBtnId )
  161.         setFlag = TRUE ;
  162.     else
  163.         setFlag = FALSE ;
  164.     MMI_SetHaltFlag( TRUE ) ;
  165.     return NOERR ;
  166. }
  167.  
  168. /*    âEâFâCâgÆlé≡É▌ÆΦ    */
  169. /*    initDataIMVSET:waitNumId:MJ_NUMBOXL40é╠î─é╤Åoé╡è╓Éö    */
  170. int    waitSet(kobj, messId, argc, pev, trigger)
  171. int        kobj ;
  172. int        messId ;
  173. int        argc ;
  174. EVENT    *pev ;
  175. int        trigger ;
  176. {
  177.     int    var, min, max, delta, ptColumn ;
  178.     MMI_SendMessage( kobj, MM_GETNUMBOX, 5,
  179.                                         &var, &min, &max, &delta, &ptColumn ) ;
  180.     wait = var ;
  181.     return NOERR ;
  182. }
  183.  
  184. /*    ì─É╢ù╠êµé≡É▌ÆΦüiâëâWâIâ{â^âôüj    */
  185. /*    initDataIMVSET:setBtnId[2]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  186. /*    initDataIMVSET:setBtnId[3]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  187. int    playSet(kobj, messId, argc, pev, trigger)
  188. int        kobj ;
  189. int        messId ;
  190. int        argc ;
  191. EVENT    *pev ;
  192. int        trigger ;
  193. {
  194.     if( kobj == setBtnId[2] )
  195.     {
  196.         MTL_setFlagObj( setBtnId[2], MS_UNSELECT ) ;
  197.         MTL_resetFlagObj( setBtnId[3], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  198.         MMI_SendMessage( setBtnId[3], MM_SHOW, 0 ) ;
  199.         playMode = 0 ;            /*    âüâéâèì─É╢    */
  200.     }
  201.     else
  202.     {
  203.         MTL_resetFlagObj( setBtnId[2], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  204.         MTL_setFlagObj( setBtnId[3], MS_UNSELECT ) ;
  205.         MMI_SendMessage( setBtnId[2], MM_SHOW, 0 ) ;
  206.         playMode = 1 ;            /*    âfâBâXâNì─É╢    */
  207.     }
  208.     return NOERR ;
  209. }
  210.  
  211. /*    ègæσùªé≡É▌ÆΦüiâëâWâIâ{â^âôüj    */
  212. /*    initDataIMVSET:setBtnId[4]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  213. /*    initDataIMVSET:setBtnId[5]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  214. /*    initDataIMVSET:setBtnId[6]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  215. /*    initDataIMVSET:setBtnId[7]:MJ_TICONL40é╠î─é╤Åoé╡è╓Éö    */
  216. int    zoomSet(kobj, messId, argc, pev, trigger)
  217. int        kobj ;
  218. int        messId ;
  219. int        argc ;
  220. EVENT    *pev ;
  221. int        trigger ;
  222. {
  223.     if( kobj == setBtnId[4] )
  224.     {
  225.         MTL_setFlagObj( setBtnId[4], MS_UNSELECT ) ;
  226.         MTL_resetFlagObj( setBtnId[movZoom+4], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  227.         MMI_SendMessage( setBtnId[movZoom+4], MM_SHOW, 0 ) ;
  228.         movZoom = 0 ;            /*    0.5ö{    */
  229.     }
  230.     else
  231.     if( kobj == setBtnId[5] )
  232.     {
  233.         MTL_setFlagObj( setBtnId[5], MS_UNSELECT ) ;
  234.         MTL_resetFlagObj( setBtnId[movZoom+4], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  235.         MMI_SendMessage( setBtnId[movZoom+4], MM_SHOW, 0 ) ;
  236.         movZoom = 1 ;            /*    éPö{    */
  237.     }
  238.     else
  239.     if( kobj == setBtnId[6] )
  240.     {
  241.         MTL_setFlagObj( setBtnId[6], MS_UNSELECT ) ;
  242.         MTL_resetFlagObj( setBtnId[movZoom+4], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  243.         MMI_SendMessage( setBtnId[movZoom+4], MM_SHOW, 0 ) ;
  244.         movZoom = 2 ;            /*    1.5ö{    */
  245.     }
  246.     else
  247.     {
  248.         MTL_setFlagObj( setBtnId[7], MS_UNSELECT ) ;
  249.         MTL_resetFlagObj( setBtnId[movZoom+4], (~(MS_UNSELECT | MS_TOGGLE)) ) ;
  250.         MMI_SendMessage( setBtnId[movZoom+4], MM_SHOW, 0 ) ;
  251.         movZoom = 3 ;            /*    éQö{    */
  252.     }
  253.     return NOERR ;
  254. }
  255.  
  256. /* on memory type */
  257.  
  258. r_mov_memory_play( name, wait, rep, page )
  259. char *name;
  260. int wait, rep, page;
  261. {
  262.     extern int playCheck() ;
  263.  
  264.     char *work ;
  265.     int frame,x0,y0,x1,y1,wsize;
  266.     int error;
  267.  
  268.     r_mov_dual_frame_set( name ) ;
  269.  
  270.     error
  271.      = mov_memory_play_init( name, playCheck,&frame,&x0,&y0,&x1,&y1,
  272.      &wsize );
  273.     if( error )goto vd10;
  274.  
  275.     if( (work = (char *)TL_malloc( wsize )) == NULL ){
  276.         error = 7;
  277.         goto vd10;            /* out of memory */
  278.     }
  279.  
  280.         /* mute */
  281.     int s ;
  282.     SND_get_elevol_mute( &s ) ;
  283.     SND_elevol_mute( s | 0x03 ) ;
  284.  
  285.     error = mov_memory_play_repeat( rbuf, work, name, 2, wait, -rep);
  286.  
  287.     SND_elevol_mute( s ) ;
  288.  
  289.     TL_free( work );
  290. vd10:
  291.     r_mov_dual_frame_end() ;
  292.     return error;
  293. }
  294.  
  295. /* disk read type */
  296.  
  297. r_mov_disk_play( name, wait, rep, page )
  298. char *name;
  299. int wait, rep, page;
  300. {
  301.     extern int playCheck() ;
  302.  
  303.     char *work ;
  304.     int frame,x0,y0,x1,y1,wsize;
  305.     int error;
  306.  
  307.     r_mov_dual_frame_set( name ) ;
  308.  
  309.     error
  310.      = mov_disk_play_init( name, playCheck,&frame,&x0,&y0,&x1,&y1,
  311.       &wsize );
  312.     if( error )goto vd10;
  313.  
  314.     if( (work = (char *)TL_malloc( wsize )) == NULL ){
  315.         error = 7;
  316.         goto vd10;            /* out of memory */
  317.     }
  318.  
  319.         /* mute */
  320.     int s ;
  321.     SND_get_elevol_mute( &s ) ;
  322.     SND_elevol_mute( s | 0x03 ) ;
  323.  
  324.     error = mov_disk_play_repeat( rbuf, work, name, 2, wait, -rep);
  325.  
  326.     SND_elevol_mute( s ) ;
  327.  
  328.     TL_free( work );
  329. vd10:
  330.     r_mov_dual_frame_end() ;
  331.     return error;
  332. }
  333.  
  334. r_mov_dual_frame_set( char *name )
  335. {
  336.     int x[4], y[4] ;
  337.  
  338.     r_mov_graph_init_sub( movZoom+1, movx0,movy0,movx1,movy1, x, y ) ;
  339.  
  340.     if( (x[0] > 0) || (y[0] > 0) )
  341.         r_mov_dual_frame_set_sub() ;
  342.  
  343.     EGB_displayPage(guiEgbPtr,0,0);
  344.  
  345. //    EGB_resolution(guiEgbPtr,0,10);
  346.     EGB_resolution(guiEgbPtr,1,10);
  347.  
  348.     EGB_writePage(guiEgbPtr,0);
  349.  
  350.     EGB_displayStart(guiEgbPtr,3,0,0);
  351.     EGB_displayStart(guiEgbPtr,2,1,1);
  352.     EGB_dis